#ifndef __CIRCLEQUEUE_H__
#define __CIRCLEQUEUE_H__

#include "BinarySortTree.h"

typedef BTnode* Datatype;//数据元素类型
	
#define QUEUE_MAX_LENGTH 20
struct CqQueue
{
	Datatype Cq[QUEUE_MAX_LENGTH];//存储队列的元素
	int front;//队头下标，下一个出队元素的下标
	int rear;//队尾下标，下一个入队元素的下标 队尾下标在空的位置
	int cur_len;//队列中元素的个数
};

struct CqQueue *InitQueue();
int QueueIsEmpty(struct CqQueue * c);
struct CqQueue * DestroyQueue(struct CqQueue * c);
void ClearQueue(struct CqQueue * c);
int QueueLength(struct CqQueue * c);
Datatype GetHead(struct CqQueue * c);
int EnQueue(struct CqQueue * c, Datatype d);
Datatype DeQueue(struct CqQueue * c);

#endif 
